package ManagedBeans;

import Librerias.Filapedido;
import Librerias.Pedido;
import Librerias.Producto;
import java.util.ArrayList;
import java.util.Collection;
import javax.inject.Named;
import javax.enterprise.context.Dependent;
import javax.faces.context.FacesContext;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import javax.persistence.Query;

@Named(value = "managedBeanFilaPedido")
@Dependent
public class ManagedBeanFilaPedido {
    private EntityManagerFactory emf = Persistence.createEntityManagerFactory("Tienda_slorenzoPU");
    private EntityManager em = emf.createEntityManager();
    private ArrayList<Filapedido> lista = new ArrayList<Filapedido>();
    Filapedido filapedido;
    
    public ManagedBeanFilaPedido() { }
    
    public ArrayList cargarPedido(){
        this.lista.clear();
        try{
            int c = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("pedido"));
        
        Pedido p = em.find(Pedido.class, c);
        
        Query query;
        query = (Query) em.createNamedQuery("Filapedido.findByPedido");
        query.setParameter("idpedido", p);
        
        Collection<Filapedido> fp = query.getResultList();
        for(Filapedido f : fp){
            filapedido = new Filapedido();
            filapedido.setId(f.getId());
            filapedido.setCantidad(f.getCantidad());
            filapedido.setIdproducto(f.getIdproducto());
            this.getLista().add(filapedido);
        }
        }catch(Exception e){
            
        }
        return this.lista;
    }
    public ArrayList<Filapedido> getLista() {
        return lista;
    }

    public void setLista(ArrayList<Filapedido> lista) {
        this.lista = lista;
    }
    
    public int cantidad(int id){
        int c = Integer.parseInt(FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("pedido"));
        Query query;
        Pedido p = em.find(Pedido.class, c);
        Producto pro = em.find(Producto.class, id);
        
        query = (Query) em.createNamedQuery("Filapedido.findByPedidoAndPrpducto");
        query.setParameter("idproducto", pro);
        query.setParameter("idpedido", p);
        
        Collection<Filapedido> fp = query.getResultList();
        for(Filapedido f : fp){
            return f.getCantidad();
        }
        return 1;
    }
}
